class Network {
  
  Neuron [] m_input_layer;
  Neuron [] m_hidden_layer;
  Neuron [] m_output_layer;
  
  Network(int inputs, int hidden, int outputs) {
    
    input_layer = new Neuron [inputs];
    hidden_layer = new Neuron [hidden];
    output_layer = new Neuron [outputs];
   
    // Initialise the input layer 
    for (int i = 0; i < input_layer.length; i++) {
      input_layer[i] = new Neuron();
    }
    // Initialise the hidden layer
    for (int j = 0; j < hidden_layer.length; j++) {
      hidden_layer[j] = new Neuron(input_layer);
    }
    // Initialise the output layer    
    for (int k = 0; k < output_layer.length; k++) {
      output_layer[k] = new Neuron(hidden_layer);
    }
  }
  // ...
}